// 文件名: call-api.ts

// 定义接口请求的 URL 和请求体数据
const API_URL = 'https://liyue-api.gsudev.cn/api/english/japi/signup-receipt/add';

const REQUEST_BODY = {
    "ro_student_name": "赵大格",
    "ro_classtime": "9.50",
    "studentId": 102,
    "mobile": "15810275840",
    "grade": "一年级",
    "examTotalScore": "",
    "tutored": 0,
    "expectStartTime": "",
    "studentDescription": "",
    "courseSuggestion": "",
    "reviewSuggestion": "",
    "examType": "",
    "examScore": ""
};

// 定义接口请求头，这些都从你的 curl 命令中提取
const HEADERS = {
    'accept': '*/*',
    'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
    'ajax': 'json',
    'content-type': 'application/json',
    'dnt': '1',
    'origin': 'https://liyue-yy.gsudev.cn',
    'referer': 'https://liyue-yy.gsudev.cn/',
    'rtp': '1',
    'sec-ch-ua': '"Chromium";v="136", "Microsoft Edge";v="136", "Not.A/Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'sec-fetch-dest': 'empty',
    'sec-fetch-mode': 'cors',
    'sec-fetch-site': 'same-site',
    'token': 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1IjoiNDU2OTYzOmFnZW5jeTJjZTA2OGZjNjAyZjRkMGQ4NDRjYTM1MmMyNDQzMmMxIn0.Tn4BELiow-SLjOMS5KA7cS0cfxR1ZcY5Fn3_RSPiHWg',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 Edg/136.0.0.0'
};

/**
 * 循环调用接口并打印结果
 * @param {number} intervalSeconds - 每次调用的间隔秒数
 */
async function callApiWithInterval(intervalSeconds: number) {
    // 转换成毫秒
    const intervalMs = intervalSeconds * 1000;
    let callCount = 0;

    console.log(`开始循环调用接口，每隔 ${intervalSeconds} 秒调用一次...`);

    // 使用 setInterval 创建循环调用
    setInterval(async () => {
        callCount++;
        console.log(`--- 第 ${callCount} 次调用 ---`);

        try {
            // 使用 Bun.fetch() 发送 POST 请求
            const response = await fetch(API_URL, {
                method: 'POST',
                headers: HEADERS,
                body: JSON.stringify(REQUEST_BODY),
            });

            // 检查响应状态
            if (response.ok) {
                // 如果响应成功，解析并打印 JSON 数据
                const data = await response.json();
                console.log('接口调用成功！响应数据：', data);
            } else {
                // 如果响应失败，打印状态码
                console.error(`接口调用失败，状态码：${response.status}`);
            }
        } catch (error) {
            // 捕获并打印网络或请求错误
            console.error('调用接口时发生错误：', error);
        }

    }, intervalMs);
}

// 启动脚本
const INTERVAL_SECONDS = 2;
callApiWithInterval(INTERVAL_SECONDS);